As software engineering techniques have matured in the past several years, componentization and reuse have become the preferred techniques by which robust enterprise applications are created. Modem enterprise applications are customarily built as a cooperating system of loosely coupled components that are deployed and executed in a distributed hardware requirement. Furthermore, to preserve existing investments, it is common for companies to build new applications that address new business challenges by connecting together existing applications and systems that previously operated in isolation.
For example, a company can build a new order processing application by connecting together several existing legacy applications to accept orders from all of the partners of the company and process such orders in a highly automated fashion. As a result of this type of integration and automation, the company can reduce processing errors and dramatically reduce the time it takes to process orders. This type of business agility can give a company a competitive edge within an industry.
While distributed applications of this type can provide a great value and a wide range of benefits to a company, applications of this type are also inherently more complex to manage due to the number of cooperating components that make up the application. These types of applications are commonly comprised of a number of loosely coupled components including schemas, maps, adapters, pipelines, communication channels, business rules, security certificates, partner definitions, custom components, and configuration parameters, among others. This simple example above could easily include over 40 individual components. Adding to this problem is that with each newly deployed application, the complexity of the system increases dramatically as more components are deployed. Even with a relatively small deployment, it can be very difficult to discern the relationship among all the components. Moreover, components are typically deployed into a physically distributed environment of multiple hardware systems, making management of the components exceptionally difficult.